//package com.example.prison.controller;
//
//import com.baomidou.mybatisplus.core.toolkit.ObjectUtils;
//import com.example.prison.config.Response;
//import com.example.prison.entity.AreaManagement;
//import com.example.prison.entity.DeviceInfo;
//import com.example.prison.service.DeviceInfoService;
//import com.example.prison.service.SystemLogService;
//import com.example.prison.util.APIUtil;
//import com.github.pagehelper.PageInfo;
//import io.swagger.annotations.Api;
//import io.swagger.annotations.ApiOperation;
//import io.swagger.v3.oas.annotations.Parameter;
//import lombok.extern.slf4j.Slf4j;
//import org.springframework.beans.factory.annotation.Autowired;
//import org.springframework.web.bind.annotation.*;
//
//@Slf4j
//@Api("设备管理")
//@RestController
//@RequestMapping("/api")
//public class DeviceInfoController {
//
//    @Autowired
//    private DeviceInfoService deviceInfoService;
//
//    @Autowired
//    private SystemLogService systemLogService;
//
//    @ApiOperation("获取设备列表")
//    @GetMapping("/getDevice")
//    public Response<PageInfo<DeviceInfo>> getDevice(@RequestParam(value = "pageNumber", defaultValue = "1") int pageNumber,
//                                                    @RequestParam(value = "pageSize", defaultValue = "10") int pageSize) {
//        log.info("获取设备列表");
//        PageInfo<DeviceInfo> pageInfo = deviceInfoService.get(pageNumber, pageSize);
//        return Response.success("获取成功！", pageInfo);
//    }
//
//    @ApiOperation("获取设备类型")
//    @GetMapping("/getDeviceType")
//    public Response<PageInfo<DeviceInfo>> getDeviceType(@RequestParam(value = "pageNumber", defaultValue = "1") int pageNumber,
//                                                        @RequestParam(value = "pageSize", defaultValue = "10") int pageSize) {
//        log.info("获取设备类型");
//        PageInfo<DeviceInfo> pageInfo = deviceInfoService.get(pageNumber, pageSize);
//        for (DeviceInfo device : pageInfo.getList()) {
//            //查询设备信息,更新实时数据
//            if(ObjectUtils.isEmpty(APIUtil.getType(device))) {
//                return Response.error("无响应！设备连接失败！");
//            }
//            device = APIUtil.getType(device);
//            deviceInfoService.update(device, device.getDeviceId());
//        }
//        return Response.success("获取成功！", pageInfo);
//    }
//
//    @ApiOperation("新增设备")
//    @PostMapping("/addDevice")
//    public Response<?> addDevice(@RequestBody DeviceInfo device) {
//        log.info("新增设备");
//        systemLogService.add("新增设备");
//        int result = deviceInfoService.add(device);
//        if (result == -1) {
//            return Response.error("设备已存在！");
//        }
//        return Response.success("添加成功！");
//    }
//
//    @ApiOperation("删除设备")
//    @PostMapping("/deleteDevice")
//    public Response<?> deleteDevice(@Parameter(description = "设备ID") @RequestBody Integer[] ids) {
//        log.info("删除设备");
//        systemLogService.add("删除设备");
//        deviceInfoService.delete(ids);
//        return Response.success("删除成功！");
//    }
//
//    @ApiOperation("编辑设备")
//    @PostMapping("/updateDevice")
//    public Response<?> updateDevice(@RequestBody DeviceInfo device) {
//        log.info("编辑设备");
//        systemLogService.add("编辑设备");
//        Integer id = device.getDeviceId();
//        int result = deviceInfoService.update(device, id);
//        if (result == -1) {
//            return Response.error("设备编号已存在！");
//        }
//        return Response.success("更新成功！");
//    }
//
//    @ApiOperation("更改模块地址")
//    @GetMapping("/changeDeviceAddress")
//    public Response<PageInfo<DeviceInfo>> getArea(@Parameter(description = "设备名称")@RequestParam String deviceName,
//                                                      @Parameter(description = "设备地址")@RequestParam(value = "address") int address) {
//        log.info("更改设备地址");
//        systemLogService.add("更改设备地址");
//        DeviceInfo device = deviceInfoService.getOneByName(deviceName);
//        device.setModuleAddress(address);
//        deviceInfoService.updateById(device);
//        return Response.success("更改成功！当前设备地址为"+address);
//    }
//
//    @ApiOperation("依据id获取设备信息")
//    @GetMapping("/getDeviceById")
//    public Response<DeviceInfo> getDeviceById(@Parameter(description = "设备ID")@RequestParam Integer deviceId) {
//        log.info("依据id获取设备信息");
//        systemLogService.add("依据id获取设备信息");
//        DeviceInfo device = deviceInfoService.getById(deviceId);
//        if(ObjectUtils.isEmpty(device)) {
//            return Response.error("此设备id不存在！");
//        }
//        return Response.success("获取成功！", device);
//    }
//
//    @ApiOperation("依据设备名称获取设备信息")
//    @GetMapping("/getDeviceByName")
//    public Response<PageInfo<DeviceInfo>> getDeviceByName(@RequestParam(value = "pageNumber", defaultValue = "1") int pageNumber,
//                                                                              @RequestParam(value = "pageSize", defaultValue = "10") int pageSize,
//                                                                              @Parameter(description = "设备名称")@RequestParam String deviceName) {
//        log.info("依据设备名称获取设备信息");
//        systemLogService.add("依据设备名称获取设备信息");
//        PageInfo<DeviceInfo> pageInfo = deviceInfoService.getByName(pageNumber, pageSize, deviceName);
//        if(ObjectUtils.isEmpty(pageInfo.getList())) {
//            return Response.error("此设备不存在！");
//        }
//        return Response.success("获取成功！", pageInfo);
//    }
//
//    @ApiOperation("依据设备编号获取设备信息")
//    @GetMapping("/getDeviceByNumber")
//    public Response<PageInfo<DeviceInfo>> getDeviceByNumber(@RequestParam(value = "pageNumber", defaultValue = "1") int pageNumber,
//                                                                                @RequestParam(value = "pageSize", defaultValue = "10") int pageSize,
//                                                                                @Parameter(description = "设备编号")@RequestParam String deviceNumber) {
//        log.info("依据设备编号获取设备信息");
//        systemLogService.add("依据设备编号获取设备信息");
//        PageInfo<DeviceInfo> pageInfo = deviceInfoService.getByNumber(pageNumber, pageSize, deviceNumber);
//        if(ObjectUtils.isEmpty(pageInfo.getList())) {
//            return Response.error("此设备不存在！");
//        }
//        return Response.success("获取成功！", pageInfo);
//    }
//
//}
